package edu.ucsur.ventasweb.DataAccess;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import edu.ucsur.ventasweb.BusinessEntity.ENVenta;

/**
 *
 * @author PAUL
 */
public class ADVenta {

    /* INICIO: Singleton */
    private static ADVenta _instance = null;

    public static ADVenta Instance()
    {
        if (_instance == null)
            _instance = new ADVenta();
        return _instance;    
    }
    /* FIN: Singleton */
    
    
    private Connection conn;
    
    

    
	  public List<ENVenta> Listar() throws Exception {
		    try {
		      conn = ADDBConnection.getConnection();
		      List<ENVenta> lista = new ArrayList<ENVenta>();
		      String sql = "SELECT v.idVenta, v.idCliente, v.idTipoDocumento, v.sNroDocumento, v.fFechaVenta, v.dTotalMontoBruto, v.dIgv, v.dDescuento, v.dTotalMontoNeto, c.sNroDocumento 'DNI', c.sNombres, c.sApePaterno, c.sApeMaterno, c.sDireccion,vd.dCantidad,vd.idProducto,vd.dPrecio,vd.dImporte,p.sDesProducto FROM venta v INNER JOIN cliente 	c 	ON v.idcliente = c.idcliente INNER JOIN VentaDetalle vd 	ON v.idventa = vd.idventa INNER JOIN producto 	p 	ON vd.idproducto = p.idproducto";
		      Statement pstmt = conn.createStatement();
		      ResultSet rs = pstmt.executeQuery(sql);

		      while (rs.next()) {
		    	  ENVenta u = new ENVenta();
		        u.setsNroDocumento(rs.getString("sNroDocumento"));
		        u.setNombres(rs.getString("sNombres"));
		        u.setsApePaterno(rs.getString("sApePaterno"));
		        u.setsApeMaterno(rs.getString("sApeMaterno"));
		        u.setsDireccion(rs.getString("sDireccion"));
		        u.setfFechaVenta(rs.getString("fFechaVenta"));
		        u.setsDesProducto(rs.getString("sDesProducto"));
		        u.setdPrecio(rs.getString("dPrecio"));
		        u.setdCantidad(rs.getString("dCantidad"));
		        u.setdImporte(rs.getString("dImporte"));

		        lista.add(u);
		      }
		      
		      return lista;
		    } catch (Exception ex) {
		      ex.printStackTrace();
		      throw ex;
		    } finally {
		      conn.close();
		    }
    

		  
}
}	  




